package com.tbit.uqbike.webmanager.dao.core;


import com.tbit.uqbike.object.pojo.ParkPointApply;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 停车点申请dao
 *
 * @author Leon
 * 2017年2月24日 下午4:02:36
 */
public interface ParkPointApplyDao {
    /**
     * 添加
     *
     * @param parkPointApply
     */
    void insert(ParkPointApply parkPointApply);

    /**
     * 根据申请id查询
     *
     * @param parkPointApplyId
     * @return
     */
    ParkPointApply getByParkPointApplyId(Integer parkPointApplyId);

    /**
     * 处理
     *
     * @param parkPointApply
     */
    void handle(ParkPointApply parkPointApply);

    /**
     * 查询总数
     *
     * @param params
     * @return
     */
    Integer queryCount(Map<String, Object> params);

    /**
     * 分页查询
     *
     * @param params
     * @return
     */
    List<ParkPointApply> queryPage(Map<String, Object> params);

    /**
     * 查询未审核站点
     *
     * @param adAccountId
     * @return
     */
    List<ParkPointApply> selectByAdAccountId(@Param("adAccountId") Integer adAccountId);


    /**
     * 查询所有区域审核站点
     * @param accountIds 区域id列表
     * @param type      0:未审核
     * @return int
     */
    int queryCountIds(@Param("accountIds") List<Integer> accountIds, @Param("type") Integer type, @Param("startTime") Date startTime, @Param("endTime")Date endTime);

    /**
     * 根据用户id和区域id集合查询
     *
     * @param userId        用户id
     * @param accountIdList 区域id集合
     * @param startTime     开始时间
     * @param endTime       结束时间
     */
    List<ParkPointApply> selectList(@Param("userId") Integer userId, @Param("accountIdList") List<Integer> accountIdList,
                                    @Param("startTime") Date startTime, @Param("endTime") Date endTime);
}